package com.xjrsoft.module.app.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.xjrsoft.core.tool.node.INode;
import com.xjrsoft.core.tool.utils.StringPool;
import lombok.Data;
import org.apache.commons.lang.StringUtils;

import java.util.ArrayList;
import java.util.List;

@Data
public class FunctionFormTreeVo implements IFunctionVo {

    /**
     * 主键值
     */
    @JsonProperty("F_Id")
    private String id;

    /**
     * 移动菜单主键值
     */
    @JsonProperty("F_FunctionId")
    private String functionId;

    /**
     * 名称
     */
    @JsonProperty("F_Name")
    private String fullName;

    /**
     * 编码
     */
    @JsonProperty("F_EnCode")
    private String enCode;

    /**
     * 排序码
     */
    @JsonProperty("F_SortCode")
    private Integer sortCode;

    @JsonProperty("F_ParentId")
    private String parentId;

    private List<INode> children;

    public String getParentId() {
        if (StringUtils.isEmpty(this.parentId) || StringUtils.equalsIgnoreCase(this.parentId, StringPool.ZERO)) {
            return this.functionId;
        }
        return this.parentId;
    }

    @Override
    public List getChildren() {
        if (this.children == null) {
            this.children = new ArrayList<>();
        }
        return this.children;
    }
}
